package cn.iocoder.yudao.module.api.promotion.fod;

import cn.iocoder.yudao.module.api.promotion.fod.bo.FirstOrderDiscountBO;
import cn.iocoder.yudao.module.api.promotion.fod.enums.FirstOrderDiscountTypeEnum;

import java.util.List;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/03/25
 */
public interface FirstOrderDiscountApi {

    /**
     * 检查用户是否符合平台首单优惠资格
     *
     * @param userId 用户编号
     * @param type 类型
     */
    boolean hasEligibility(Long userId, FirstOrderDiscountTypeEnum type);

    /**
     * 应用平台首单优惠折扣
     *
     * @param userId 用户编号
     * @param tradeNo 交易单号
     * @param originalPrice 原价金额
     * @param discountPrice 折扣减免金额
     */
    void applyPlatformDiscount(Long userId, String tradeNo, Integer originalPrice, Integer discountPrice);

    /**
     * 获取店铺首单优惠配置
     *
     * @param shopId 店铺编号
     * @return 配置列表
     */
    List<FirstOrderDiscountBO> getDiscountConfig(Long shopId);

}
